Extracting textures from text based images

ABSTRACT

This disclosure describes one or more implementations of systems, non-transitory computer-readable media, and methods that extract a texture from embedded text within a digital image utilizing kerning-adjusted glyphs. For example, the disclosed systems utilize text recognition and text segmentation to identify and segment glyphs from embedded text depicted in a digital image. Subsequently, in some implementations, the disclosed systems determine optimistic kerning values between consecutive glyphs and utilize the kerning values to reduce gaps between the consecutive glyphs. Furthermore, in one or more implementations, the disclosed systems generate a synthesized texture utilizing the kerning-value-adjusted glyphs by utilizing image inpainting on the textures corresponding to the kerning-value-adjusted glyphs. Moreover, in certain instances, the disclosed systems apply a target texture to a target digital text based on the generated synthesized texture.

BACKGROUND

Recent years have seen an increase in the utilization of stylisticdigital text within computer graphics and digital content. For example,many conventional digital graphics systems apply graphical elements suchas colors, gradients, textures, and other artistic elements to digitaltext. Often designers may try to replicate a text in another design.While conventional systems exist for text recognition, conventionalsystems typically do not allow for extraction of textures from text in adigital image.

SUMMARY

This disclosure describes one or more implementations of systems,non-transitory computer-readable media, and methods that extract atexture from embedded text within a digital image to utilize theextracted texture to modify a target digital text object. For instance,the disclosed systems utilize text recognition and text segmentation toidentify and segment glyphs (of an embedded text) from a digital image.Upon identifying and segmenting the glyphs, the disclosed systemsdetermine kerning values between consecutive glyphs and utilize thekerning values to reduce gaps between the consecutive glyphs.Subsequently, the disclosed systems generate a synthesized textureutilizing the kerning-value-adjusted glyphs by utilizing imageinpainting on the textures corresponding to the kerning value adjustedglyphs. In certain instances, the disclosed systems utilize thesynthesized texture to search for existing textures and/or directlyapply the synthesized texture to another digital object.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingdrawings in which:

FIG. 1 illustrates a schematic diagram of an example system in which thetexture extraction system operates in accordance with one or moreimplementations.

FIG. 2 illustrates an overview of a texture extraction system generatinga synthesized texture from text embedded in a digital image inaccordance with one or more implementations.

FIG. 3 illustrates a texture extraction system generating a synthesizedtexture utilizing kerning-adjusted glyphs based on bounding boxesbetween consecutive glyphs in accordance with one or moreimplementations.

FIG. 4 illustrates a texture extraction system generating a synthesizedtexture utilizing kerning-adjusted glyphs based on multiple kerningdistances between consecutive glyphs in accordance with one or moreimplementations.

FIG. 5 illustrates a texture extraction system generating a synthesizedtexture from an embedded text that includes varying textures acrossglyphs in accordance with one or more implementations.

FIG. 6 illustrates a texture extraction system applying a texture to atarget digital text based on a synthesized texture in accordance withone or more implementations.

FIG. 7 illustrates a schematic diagram of a texture extraction system inaccordance with one or more implementations.

FIG. 8 illustrates a flowchart of a series of acts for extracting atexture from embedded text depicted within a digital image in accordancewith one or more implementations.

FIG. 9 illustrates a block diagram of an example computing device inaccordance with one or more implementations.

DETAILED DESCRIPTION

One or more implementations of a texture extraction system extract atexture from embedded text within a digital image using kerning-adjustedglyphs corresponding to the embedded text. For example, the textureextraction system identifies glyphs (having textures) that are depictedwithin a digital image. Furthermore, in some implementations, thetexture extraction system adjusts the positions of the glyphs utilizingkerning values between consecutive glyphs. Then, in one or moreimplementations, the texture extraction system generates a synthesizedtexture from the textures depicted in the glyphs while positioned intheir kerning-value-adjusted positions. Moreover, in certain instances,the texture extraction system applies a texture to a target digital textbased on the synthesized texture.

As mentioned above, in some implementations, the texture extractionsystem identifies glyphs from within a digital image. In some cases, thetexture extraction system utilizes a text recognition model to identifyglyphs from embedded text (e.g., foreground and/or background embeddedtext) within the digital image. In one or more implementations, thetexture extraction system segments the glyphs from the digital image.For example, the texture extraction system segments the glyphs such thatvarious combinations of, but not limited to, the background, edgeeffects, shadow effects, halo effects, decorative strokes, and/or 3Deffects are removed from the digital image to result in the glyphs withtheir depicted textures. Indeed, in some cases, the texture extractionsystem generates a text-digital image that depicts the segmented glyphs.

Additionally, in one or more implementations, the texture extractionsystem generates a synthesized texture from the glyphs upon adjustingthe positions of the glyphs utilizing kerning values. In particular, insome implementations, the texture extraction system adjusts thepositions of the identified glyphs using kerning values betweenconsecutive glyphs to reduce gaps between the consecutive glyphs. Incertain implementations, the texture extraction system utilizes kerningdistance values between bounding boxes of consecutive glyphs as thekerning values. In one or more implementations, the texture extractionsystem utilizes multiple kerning distances between the right-most andleft-most pixel positions of consecutive glyphs within differentpartitions of the consecutive glyphs to determine kerning values (e.g.,using an averaged kerning distance) between the consecutive glyphs. Thiskerning value, in some implementations, is then utilized by the textureextraction system to reposition the glyphs such that gaps between theconsecutive glyphs are reduced. Subsequently, in one or moreimplementations, the texture extraction system inpaints the texturesdepicted in the kerning-adjusted glyphs to generate a synthesizedtexture. Indeed, in some implementations, the texture extraction system106 generates a synthesized texture from textures depicted in embeddedtext of a digital image even when the digital image (and the depictedtext) are rasterized without layers or differentiated objects within thedigital image.

Furthermore, in certain instances, the texture extraction system appliesa texture to a target digital image using the generated synthesizedtexture. For example, the texture extraction system searches through atexture repository to identify target textures that match (or aresimilar to) the synthesized texture. Then, in one or moreimplementations, the texture extraction system receives a selection frombetween the identified target textures and applies the selected targettexture to a target object (such as, for example, digital text). In somecases, the texture extraction system directly applies the synthesizedtexture to a target object such that the target object depicts a similartexture as depicted in the embedded text of the input digital image.Accordingly, in one or more implementations, the texture extractionsystem utilizes a synthesized texture extracted from embedded text of adigital image to modify the visual appearance of a target object (withinanother digital content item).

The texture extraction system provides a number of advantages overconventional systems. For example, in contrast to conventional systemsthat rely on computationally demanding machine learning models, thetexture extraction system efficiently utilizes less computationalresources to extract textures from embedded text in a digital image byreducing the utilization of machine learning models in the textureextraction process. In particular, by inpainting textures in kerningadjusted glyphs, the texture extraction system is able to generatesynthesized textures from embedded text that materially represent thetexture depicted within the embedded text. Indeed, by utilizing kerningvalue position adjustments and inpainting on the identified glyphs, thetexture extraction system foregoes the utilization of a deep learningmodel or GAN-based style transfer approach to result in a quicker andless computationally demanding approach to extract a texture from anembedded text within a digital image. Accordingly, the textureextraction system efficiently extracts textures from embedded text withless training, less storage space, and less processing requirements thansome conventional systems.

In addition to utilizing less computationally demanding machine learningmodels, the texture extraction system also generates synthesizedtextures that accurately represent textures depicted within embeddedtext of a digital image. For instance, by reducing the gap betweenconsecutive glyphs identified from a digital image using kerning valueposition adjustments, the texture extraction system is able to improvethe inpainting of the textures from the collection of glyphs. Thisimproved inpainting of the glyphs by the texture extraction systemresults in synthesized textures that materially (and accurately)represent the overall visual textures of embedded texts from inputdigital images.

Furthermore, due to the improvements in efficiency, the textureextraction system can easily extract textures accurately from embeddedtext depicted in digital images on a wider variety of computing devices(including mobile devices). Indeed, unlike conventional systems that mayrequire dedicated cloud services to extract an accurate texture, thetexture extraction system has the ability to be implemented locally on anumber of computing devices such that the computing devices is able toreceive an input digital image and extract a texture from embedded textdepicted in the input digital image without relying on cloud computingor computationally demanding machine learning models. In addition,since, in one or more implementations, the texture extraction systemdoes not rely on receiving masked regions, the texture extraction systemis able to receive input digital images and apply target textures totarget digital text from the textures depicted in embedded text of theinput digital images with improved flexibility and less user selectionand/or interaction. Additionally, unlike conventional systems withmanual user selection processes, the texture extraction systemautomatically identifies glyphs and accurately (and consistently)generates a synthesized texture upon receiving a request from a userselection (e.g., a single-click action) with an input digital image.

Turning now to the figures, FIG. 1 illustrates a schematic diagram ofone implementation of a system 100 (or environment) in which a textureextraction system operates in accordance with one or moreimplementations. As illustrated in FIG. 1, the system 100 includesserver device(s) 102, a network 108, a client device 110, and a texturerepository 116. As further illustrated in FIG. 1, the server device(s)102, the client device 110, and the texture repository 116 communicatevia the network 108.

As shown in FIG. 1, the server device(s) 102 include a digital graphicssystem 104 which further includes the texture extraction system 106. Forexample, the server device(s) includes, but is not limited to, acomputing (or computer) device (as explained below with reference toFIG. 9). In some implementations, the texture extraction system 106identifies glyphs from embedded text within a digital image.Additionally, in one or more implementations, the texture extractionsystem 106 utilizes kerning values between consecutive glyphs to adjustthe positions of the identified glyphs to reduce gaps betweenconsecutive glyphs. Upon determining kerning-adjusted glyphs, in someimplementations, the texture extraction system 106 inpaints texturescorresponding to the kerning-adjusted glyphs to generate a synthesizedtexture. In certain instances, the texture extraction system applies atarget texture to a target digital text based on the synthesizedtexture.

Furthermore, as shown in FIG. 1, the system 100 includes the clientdevice 110. In one or more implementations, the client device 110includes, but is not limited to, a mobile device (e.g., smartphone,tablet), a laptop, a desktop, or any other type of computing device,including those explained below with reference to FIG. 9. In certainimplementations, although not shown in FIG. 1, the client device 110 isoperated by a user to perform a variety of functions (e.g., via thedigital graphics application 112). For example, the client device 110performs functions such as, but not limited to, receiving digitalimages, generating synthesized textures from embedded texts in digitalimages, receiving selections of target textures based on the synthesizedtextures, and applying textures to a target digital text object.

To access the functionalities of the texture extraction system 106 (asdescribed above), in one or more implementations, a user interacts withthe digital graphics application 112 on the client device 110. Forinstance, the digital graphics application 112 includes one or moresoftware applications installed on the client device 110 (e.g., togenerate synthesized textures and/or apply textures to digital text inaccordance with one or more implementations herein). In some instances,the digital graphics application 112 is hosted on the server device(s)102. In addition, when hosted on the server device(s), the digitalgraphics application 112 is accessed by the client device 110 through aweb browser and/or another online interfacing platform and/or tool.

Although FIG. 1 illustrates the texture extraction system 106 beingimplemented by a particular component and/or device within the system100 (e.g., the server device(s) 102), in some implementations, thetexture extraction system 106 is implemented, in whole or part, by othercomputing devices and/or components in the system 100. For instance, insome implementations, the texture extraction system 106 is implementedon the client device 110 within the digital graphics application 112. Inparticular, in one or more implementations, the description of (and actsperformed by) the texture extraction system 106 are implemented (orperformed by) the texture extraction application 114 when the clientdevice 110 implements the texture extraction system 106. Morespecifically, in certain instances, the client device 110 (via animplementation of the texture extraction system 106 on the textureextraction application 114) generates synthesized textures and/orapplies textures to digital text in accordance with one or moreimplementations. Indeed, as mentioned above, the texture extractionsystem 106 can easily extract textures accurately from embedded textdepicted in digital images on a wider variety of computing devices(including mobile devices) without having to extensively rely on cloudcomputing.

As further shown in FIG. 1, the system 100 includes the texturerepository 116. In some implementations, the texture repository 116includes, but is not limited to, a server device, cloud servicecomputing device, or any other type of computing device (including thoseexplained below with reference to FIG. 9) that stores one or moretextures (or texture files). For example, the texture repository 116includes a collection of target textures such as, but not limited toAdobe Stock textures and/or collection of stock textures. In someinstances, the texture extraction system 106 accesses the texturerepository 116 to retrieve one or more target textures based on agenerated synthesized texture. For example, the texture extractionsystem 106 utilizes a synthesized texture from embedded text of adigital image to search for target textures in the texture repository116 in accordance with one or more implementations. Then, in someinstances, the texture extraction system 106 applies a target texturefrom the texture repository 116 onto a target digital text in accordancewith one or more implementations. Indeed, in some implementations, thetexture extraction system 106 performs the above- mentioned tasks uponreceiving a request from the client device 110 to utilize textures fromthe texture repository 116.

Additionally, as shown in FIG. 1, the system 100 includes the network108. As mentioned above, in some instances, the network 108 enablescommunication between components of the system 100. In certainimplementations, the network 108 includes a suitable network and maycommunicate using any communication platforms and technologies suitablefor transporting data and/or communication signals, examples of whichare described with reference to FIG. 9. Furthermore, although FIG. 1illustrates the server device(s) 102, the client device 110, and thetexture repository 116 communicating via the network 108, in certainimplementations, the various components of the system 100 communicateand/or interact via other methods (e.g., the server device(s) 102 andthe client device 110 communicating directly).

As previously mentioned, in one or more implementations, the textureextraction system 106 extracts a texture from embedded text within adigital image to utilize the extracted texture to modify a targetdigital object. For example, FIG. 2 illustrates an overview of thetexture extraction system 106 generating a synthesized texture from textembedded in a digital image and utilizing the synthesized texture tomodify a target digital object (in this case target digital text). Morespecifically, as shown in FIG. 2, the texture extraction system 106identifies glyphs depicted within a digital image, generates asynthesized texture from kerning-adjusted glyphs, and then applies atexture to a target digital text based on the synthesized texture.

Indeed, as illustrated in FIG. 2, the texture extraction system 106first identifies glyphs depicted within a digital image in an act 202.As shown in the act 202 of FIG. 2, the texture extraction system 106utilizes a text recognition model to first identify text (as glyphs)within a digital image that depicts text (e.g., the embedded text of“WOODEN TYPOGRAPHY”). For instance, as illustrated in the act 202 ofFIG. 2, the texture extraction system 106 identifies the depicted textand utilizes bounding boxes to indicate the glyphs within the digitalimage. Then, as shown in FIG. 2, the texture extraction system 106utilizes a text segmentation model to segment the glyphs from theremainder of the digital image by removing the background, edge effects,shadows, and 3D effects from the digital image. As illustrated in theact 202 of FIG. 2, upon recognizing text utilizing a text recognitionmodel and segmenting the glyphs from the digital image utilizing a textsegmentation model, the texture extraction system 106 identifiesextracted glyphs that depict a particular texture.

In one or more implementations, the term “image” includes a digitalsymbol, picture, icon, and/or other visual illustration depicting one ormore objects. For instance, an image includes a digital file having avisual illustration and/or depiction of an object (e.g., human, place,or thing) and/or a visual illustration of a text object. For example, animage includes a visual illustration and/or depiction of an object witha text component having a visual texture (e.g., a building with a sign,a shirt with word decals, a poster with stylized text) and/or adepiction of a stylized text that includes a texture. Indeed, in someimplementations, an image includes, but is not limited to, a digitalfile with the following extensions: JPEG, TIFF, BMP, PNG, RAW, or PDF.In some instances, an image includes a frame from a digital video filewith the following extensions: MP4, MOV, WMV, or AVI.

Furthermore, in some implementations, the term “text” includes a visualdepiction or representation of an element of speech or writing. Inparticular, text includes drawn, printed, or written characters in avariety of languages. In some instances, text includes a visualdepiction of speech or writing with various combinations oftypographical and/or stylistic elements such as, but not limited to,font, color, shadow, texture, and/or effects. In addition, in one ormore implementations, the term “glyph” includes a visual representationof a character from a text using one or more specific shapes. In certaininstances, a glyph includes a specific shape, design, or representationof a character. For example, a glyph includes a shape outline of acharacter within a text. Indeed, in some implementations, a textincludes multiple characters with each character having a particularglyph.

As mentioned above, to recognize text depicted within a digital image,the texture extraction system 106 utilizes a text recognition model. Inparticular, in some implementations, the texture extraction system 106utilizes a text recognition model to analyze a digital image to identifydepictions of text within a digital image. In certain instances, theidentifies text and generates a bounding box to indicate words and/orcharacters from the digital image. In some implementations, the textureextraction system 106 generates a bounding box for a word (e.g., aword-wise bounding box) and/or a bounding box for a character (e.g., acharacter-wise bounding box).

In one or more implementations, a text recognition model includes analgorithm or an application that implements a technique to recognizetext (e.g., characters, words, glyphs) depicted within a digital image.In some implementations, the texture extraction system 106 utilizes avariety of text recognition models such as, but not limited to, anoptical character recognition (OCR) model, an optical word recognitionmodel, an intelligent character recognition (ICR) model, an intelligentword recognition model to identify characters (or words) within a textthat depicted in a digital image.

In some instances, the texture extraction system 106 determines boundingboxes around words and/or characters identified within a text depictedin a digital image. The bounding boxes include lines (or boundaries)that indicate an enclosed box around the left-most, right-most,top-most, and bottom-most visual pixel of a word and/or character.Moreover, in one or more implementations, the texture extraction system106 utilizes the bounding boxes to segment glyphs (or characters) fromthe digital image. In some instances, the texture extraction system 106also utilizes the bounding boxes to determine kerning values betweenconsecutive glyphs while determining kerning-value adjusted positionsfor the glyphs.

In addition, upon identifying the text depicted within a digital image,in some implementations, the texture extraction system 106 crops theidentified text from the digital image. For instance, the textureextraction system 106 crops words or individual characters from textthat is depicted within digital image to obtain a portion of the digitalimage that depicts the text. In some instances, the texture extractionsystem 106 utilizes word-based and/or character-based bounding boxes tocrop text from a digital image. Indeed, in certain instances, thetexture extraction system 106 crops text from a digital image prior toutilizing a text segmentation model to extract glyphs from theidentified text.

Then, as mentioned above, in one or more implementations, the textureextraction system 106 utilizes a text segmentation model to segmentglyphs from the remainder of a digital image. In particular, the textureextraction system 106 utilizes a text segmentation model with theidentified text depicted within a digital image (or cropped textportions form the digital image) to remove various parts of the digitalimage from the identified text to obtain a text-digital image (e.g., atext mask) that includes the identified text and corresponding textureswhile removing other background and visual effects corresponding to thetext and around the text. For example, the texture extraction system 106segments glyphs from a digital image depicting text through the removalof unrelated background and visual effects such as, but not limited to,shadow effects, halo effects, 3D effects, decorative strokes (or strokethickness), and/or background components of the digital image inrelation to the text. By removing such unrelated background and visualeffects, the texture extraction system 106, in one or moreimplementations, generates a text-digital image (or text mask) thatindependently includes glyphs with textures from the digital image(e.g., without other visual components of the digital image).

In one or more implementations, a text segmentation model includes analgorithm or an application that implements an image segmentationprocess to partition a digital image into segments that include text asa segment. For example, a text segmentation model includes models thatutilize neural networks (e.g., convolutional neural networks, U-Net,DenseNet). Furthermore, in some implementations, the texture extractionsystem 106 utilizes text segmentation models and/or tools that are basedon a variety of approaches and/or techniques such as, but not limitedto, image classification, clustering, histogram-based methods, and/oredge detection. In some implementations, the texture extraction system106 utilizes a text segmentation model as described by Xu et al. inRethinking Text Segmentation: A Novel Dataset and a Text-SpecificRefinement Approach, arXiv:2011.14021v1, (2020), the content of which ishereby incorporated by reference in its entirety.

As such, in some implementations (and as shown in FIG. 2), the textureextraction system 106 identifies text from a digital image. Then, asalso shown in FIG. 2, the texture extraction system 106 segments thetext from digital image such that the glyphs corresponding to the textand the textures depicted within the glyphs remain. Moreover, in one ormore implementations, the texture extraction system 106 utilizes theglyphs and the textures depicted within the glyphs to generate asynthesized texture upon adjusting the positions of the glyphs utilizingkerning values between consecutive glyphs.

In some implementations, the term “texture” includes a visual appearanceand/or depiction of a surface of an object. In some implementations, thetexture includes the visual appearance and/or depiction of the surfaceof text depicted within a digital image. For example, a texture includesa surface color, surface pattern, surface visual smoothness, surfacevisual roughness, and/or a surface light property that is depictedand/or represented on the face of text within a digital image. Inaddition, in certain instances, a text includes various glyphs thatinclude separate (e.g., individual) textures on each glyph.

As shown in the act 204 of FIG. 2, the texture extraction system 106generates a synthesized texture from kerning-adjusted glyphs (e.g., theidentified glyphs from the act 202). In particular, as shown in FIG. 2,the texture extraction system 106 determines kerning values betweenconsecutive glyphs from the identified glyphs. Then, as also shown inFIG. 2, the texture extraction system 106 adjusts positions of theglyphs to reduce the gap between the consecutive glyphs utilizing thekerning values. In some instances, the texture extraction system 106determines and utilizes an optimistic kerning value computation thatutilizes a kerning distance between bounding boxes and/or an averagekerning distance between multiple partitions of the consecutive glyphsto adjust positions of the glyphs prior to generating a synthesizedtexture. Indeed, upon obtaining the kerning-adjusted glyphs, the textureextraction system 106 inpaints the textures from the kerning-adjustedglyphs to generate a synthesized texture that accounts for the textureswithin the kerning-adjusted glyphs. The texture extraction system 106adjusting glyphs using kerning values and generating synthesizedtextures from the kerning-adjusted glyphs is described in greater detailbelow in relation to FIGS. 3-5.

Additionally, as shown in FIG. 2, the texture extraction system 106applies a texture to a target digital object based on the synthesizedtexture in an act 206. As shown in FIG. 2, in some cases, the textureextraction system 106 utilizes the synthesized texture to search forsimilar textures that are applicable to the target digital text. Then,the texture extraction system 106 applies a selected texture from thesearched textures to the target digital text. In some instances, thetexture extraction system 106 directly applies the synthesized textureto the target digital text. Indeed, by applying a texture based on thesynthesized texture or the synthesized texture directly to the targetdigital text, the texture extraction system 106 modifies the visualappearance of the target digital text on the surface of the targetdigital text. The texture extraction system 106 applying a texture basedon a synthesized texture is described in greater detail below (e.g., inrelation to FIG. 6).

As previously mentioned, in one or more implementations, the textureextraction system 106 generates a synthesized texture from glyphsextracted from a digital image utilizing optimistic kerning value-basedposition adjustments of the glyphs. In some instances, the textureextraction system 106 determines kerning values between bounding boxesof consecutive glyphs and utilizes the kerning values to reduce gapsbetween the consecutive glyphs prior to generating a synthesized texturefrom the kerning-adjusted glyphs. For example, FIG. 3 illustrates thetexture extraction system 106 utilizing kerning values from boundingboxes of glyphs to adjust the positions of the glyphs prior togenerating a synthesized texture.

As shown in FIG. 3, the texture extraction system 106 first identifieskerning values between bounding boxes of consecutive glyphs from a setof glyphs 302. Indeed, as shown in FIG. 3, the texture extraction system106 determines a kerning value 1 through kerning value 5 for the gapsbetween consecutive glyphs from the set of glyphs 302. Then, asillustrated in FIG. 3, the texture extraction system 106 adjusts theglyph positions utilizing the kerning values in an act 304 to generate aset of kerning-adjusted glyphs 306. Indeed, as shown in FIG. 3, thetexture extraction system 106 reduces gaps between consecutive glyphsfrom the set of glyphs 302 by repositioning the glyphs (or the glyphsbounding boxes) by a distance indicated by the kerning value between thebounding boxes (e.g., kerning values 1 through kerning value 5).Subsequently, as shown in FIG. 3, the texture extraction system 106generates a synthesized texture 308 utilizing the set ofkerning-adjusted glyphs 306.

In one or more implementations, the term “kerning value” includes avalue that represents a spacing between glyphs (or characters). Inparticular, in some implementations, a kerning value includes arepresentational value that indicates an overall (or estimated) spacingbetween a pair of glyphs. The kerning value, in some implementations,includes a numerical unit that indicates a spacing in relation to a fontunit (e.g., a fraction of an em of a glyph or character that representsa point size of the glyph or character). In certain instances, thetexture extraction system 106 utilizes one or more kerning distancesbetween a pair of glyphs to determine a kerning value. For example, theterm “kerning distance” includes a measure of spacing between one ormore specific points from a pair of glyphs. In particular, in one ormore implementations, a kerning distance includes a measurement ofspacing between a particular point of a glyph and a particular point ofanother glyph in pixels, millimeters, and/or a number of units over anem.

To illustrate, as shown in FIG. 3, the texture extraction system 106determines a kerning distance between a right-most boundary position(e.g., x coordinate position) of a bounding box of a glyph and aleft-most boundary position of a bounding box of the next consecutiveglyph. Indeed, as shown in FIG. 3, the texture extraction system 106determines a kerning value 1 (for the set of glyphs 302) by determininga kerning distance between a right-most boundary position of a boundingbox for the “W” glyph and a left-most boundary position of a boundingbox for the consecutive “0” glyph. As further shown in FIG. 3, thetexture extraction system 106 determines kerning values 2 throughkerning values 5 by determining kerning distances between the boundingboxes of the glyphs corresponding to the kerning values 2 throughkerning values 5.

In certain instances, the texture extraction system 106 utilizes aright-most x coordinate position (xMax) of a first bounding box from afirst glyph (bbox1) and a left-most x coordinate position (xMin) of asecond bounding box from a second glyph (bbox2) to determine a kerningdistance between the two bounding boxes. Then, in one or moreimplementations, the texture extraction system 106 utilizes a negativevalue of the kerning distance between the two bounding boxes as thekerning value (e.g., to represent a positional adjustment of the secondglyph to the left to reduce a gap between the first and second glyph).For example, the texture extraction system 106 determines a kerningvalue between the right-most x coordinate position (xMax) of the firstbounding box from the first glyph (bbox1) and the left-most x coordinateposition (xMin) of the second bounding box from the second glyph (bbox2)utilizing the following function:

Kerning Value=−(bbox2·xMin−bbox1·xMax) (1)

Then, to generate the set of kerning-adjusted glyphs, the textureextraction system 106 adjusts glyph positions utilizing the determinedkerning values. For instance, as shown in FIG. 3, the texture extractionsystem 106 modifies x coordinate positions of the glyphs to reduce a gapbetween each consecutive glyph. In particular, for each glyph, thetexture extraction system 106, in one or more implementations, generatesupdated x coordinate positions (UpdatedXPos) by utilizing the current xcoordinate positions (CurrentXPos) of a glyph and the kerning valuebetween the glyph and a consecutive (e.g., adjacent) glyph. Indeed,using the kerning value determined in function (1), in certaininstances, the texture extraction system 106 determines updated xcoordinate positions (UpdatedXPos) with a (negative) kerning valueutilizing the following function:

UpdatedXPos=CurrentXPos+Kerning Value  (2)

In some implementations, the texture extraction system 106 utilizes zeroas the kerning value for the first glyph in function (2) in order toanchor the first glyph as the starting point during the kerningvalue-based position adjustments. More specifically, in one or moreimplementations, the texture extraction system 106 utilizes a kerningvalue of zero for the first glyph such that the updated x coordinateposition of the first glyph does not change from the current xcoordinate position of the first glyph. In addition, although one ormore implementations herein demonstrate the texture extraction system106 utilizing negative kerning values to adjust positions of glyphsleftwards, in some implementations, the texture extraction system 106utilizes positive kerning values between consecutive glyphs to adjustpositions of the glyphs rightwards. For example, the texture extractionsystem 106 adjusts positions of the glyphs rightwards by adjusting theposition of a first glyph rightward to shift the first glyph towards asecond glyph (that is adjacent to the first glyph on the right side) andso forth for each subsequent glyph.

Furthermore, as shown in FIG. 3, upon generating a set ofkerning-adjusted glyphs 306, the texture extraction system 106 generatesa synthesized texture 308 from textures depicted within the set ofkerning-adjusted glyphs 306. To generate a synthesized texture, in someimplementations, the texture extraction system 106 utilizes texturesdepicted within a set of kerning-adjusted glyphs to fill in a backgroundregion of an object (e.g., a text-digital image or texture file)utilizing the textures depicted across the kerning-adjusted glyphs. Inparticular, in one or more implementations, the texture extractionsystem 106 utilizes the textures depicted within the kerning-adjustedglyphs to generate a texture sample that depicts the texture from theglyphs within a boundary of a texture image (e.g., fills the texturefrom border to border of a texture image or texture file).

In some cases, the texture extraction system 106 utilizes inpainting togenerate a synthesized texture from textures depicted within a set ofkerning-adjusted glyphs. For example, inpainting includes an imageediting process in which missing (or blank) portions of an image arefilled in utilizing a visual reference. For instance, inpaintingincludes an image editing process that fills missing (or blank) portionsof a texture image (or texture file) by filling the missing portions ofthe texture image with textures depicted within a set ofkerning-adjusted glyphs. In one or more implementations, the textureextraction system 106 utilizes a variety of digital inpaintingapproaches such as, but not limited to, partial differentialequation-based inpainting, texture synthesis-based inpainting,exemplar-based inpainting, deep learning neural network inpainting,image completion-based inpainting, wavelet transformation-basedinpainting and/or gaussian texture inpainting.

In one or more implementations, the texture extraction system 106utilizes content-aware fill from Adobe Photoshop to fill a backgroundwith textures from the kerning-adjusted glyphs to generate a synthesizedtexture. As an example, the texture extraction system 106 utilizes aninpainting approach as described by C. Yang et al., High-resolutionImage Inpainting Using Multiscale Neural Patch Synthesis, In Proceedingsof the IEEE Conference on Computer Vision and Pattern Recognition, pages6721-6729, (2017), the content of which is hereby incorporated byreference in its entirety. Additionally, another example of aninpainting approach includes that described by J. Yu et al., GenerativeImage Inpainting with Contextual Attention, In Proceedings of the IEEEConference on Computer Vision and Pattern Recognition, pages 5505-5514,(2018), the content of which is hereby incorporated by reference in itsentirety. Furthermore, another example of an inpainting approachincludes that described by Y. Zeng et al., High-resolution ImageInpainting With Iterative Confidence Feedback and Guided Upsampling,arrXiv:2005.11742, (2020), the content of which is hereby incorporatedby reference in its entirety.

Although one or more implementations illustrate the texture extractionsystem 106 adjusting positions of glyphs horizontally, in one or moreimplementations, the texture extraction system 106 adjusts the positionsof glyphs in various directions prior to generating a synthesizedtexture. Indeed, in some implementations, the texture extraction system106 determines kerning values from y coordinate positions of glyphs whena set of glyphs are positioned vertically. For example, the textureextraction system 106 determines kerning values by determining a kerningdistance between a bottom-most boundary of a first glyph (from abounding box) and a top-most boundary of a consecutive second glyph(from a bounding box). Then, in some implementations, the textureextraction system 106 positions the glyphs using the kerning values suchthat consecutive glyphs have a reduced gap (vertically) between theconsecutive glyphs. Moreover, the texture extraction system 106generates a synthesized texture (as described above) from texturesbelonging to the vertical kerning-adjusted glyphs.

In addition, in some implementations, the texture extraction system 106adjusts positions of glyphs in various combinations of both vertical andhorizontal directions (e.g., scattered and/or diagonal glyphs) prior togenerating a synthesized texture. For example, in some instances, thetexture extraction system 106 identifies an extracted set of glyphs thatare not vertically or horizontally aligned in relation to each glyph inthe set of glyphs. In such cases, the texture extraction system 106identifies a kerning distance between various positions of boundingboxes of consecutive glyphs to adjust the position of the glyphs by acorresponding kerning value.

For instance, the texture extraction system 106 identifies a minimumand/or maximum kerning distance between edges of consecutive glyphs andutilizes the minimum and/or maximum kerning distance as the kerningvalue between the consecutive glyphs. In addition, in one or moreimplementations, the texture extraction system 106 adjusts the positionof a glyph by the determined kerning value along a path created by theboundary box points from which the kerning value was determined. Indeed,in many instances, the texture extraction system 106 reduces a gapbetween consecutive glyphs utilizing the kerning value along theboundary box points to reduce gaps between the non-horizontal and/ornon-vertical glyphs. Then, as described above, the texture extractionsystem 106 generates synthesized textures from the kerning-adjustedglyphs.

As previously mentioned, in some instances, the texture extractionsystem 106 utilizes multiple kerning distances from multiple partitionsbetween glyphs to determine a kerning value for adjusting glyphpositions. For instance, FIG. 4 illustrates the texture extractionsystem 106, for a set of glyphs 402, adjusting glyph positions utilizingmultiple kerning distances from various partitions in glyphs (in an act404). Then, FIG. 4 illustrates the texture extraction system 106utilizing the set of kerning-adjusted glyphs 406 to generate asynthesized texture 408.

In reference to act 404 of FIG. 4, the texture extraction system 106determines a number of partitions between a pair of glyphs (e.g.,partition 1 through partition N). Then, as shown in FIG. 4, the textureextraction system 106 determines a right-most pixel x coordinateposition (e.g., P₁ to P_(N)) of the first glyph (e.g., “D”) and aleft-most pixel x coordinate (e.g., Q₁ to Q_(N)) for the consecutiveglyph (e.g., “E”) within each partition (.g., partition 1 throughpartition N). As further illustrated in FIG. 4, utilizing these pixel xcoordinates (e.g., P₁ to P_(N) and Q₁ to Q_(N)), the texture extractionsystem 106 determines kerning distance value 1 through kerning distancevalue N (e.g., for each pair of pixel x coordinates within the differentpartitions). As further shown in FIG. 4, the texture extraction system106 utilizes the kerning distance value 1 through kerning distance valueN to determine a kerning value_(QP) that is, then, utilized toreposition the consecutive glyphs to reduce the gap between the glyphs.Indeed, as shown in FIG. 4, the texture extraction system 106 determineskerning values and repositions each consecutive glyph from the set ofglyphs 402 to generate the set of kerning-adjusted glyphs 406.

In some instances, the texture extraction system 106 utilizesintersections of the partitions as the pixel x coordinates of the glyphsto determine kerning distances between a pair of glyphs. In one or moreimplementations, the texture extraction system 106 utilizes a right-mostpixel x coordinate of a first glyph and a left-most pixel x coordinateof a second glyph within each partition to determine kerning distancesbetween the consecutive glyphs. For example, within each partitionbetween consecutive glyphs, the texture extraction system 106 determinesa shortest kerning distance from the pixels of the two consecutiveglyphs.

Furthermore, in one or more implementations, the texture extractionsystem 106 identifies a number of partitions to utilize for glyphs in aset of glyphs from a user selection, preference setting, and/or adefault setting. In some cases, the texture extraction system 106determines the number of partitions based on sizes of the one or moreglyphs. For example, the texture extraction system 106 utilizes a sizeof the largest (or smallest) glyph (in height) to determine a number ofpartitions (e.g., based on a ratio or a partition per each thresholdincrement of height).

In one or more implementations, the texture extraction system 106determines partitions based on sizes of the glyphs (e.g., height of aglyph when horizontally aligned or width of the glyph when verticallyaligned). For example, the texture extraction system 106 identifies alowest height glyph (e.g., based on bounding boxes and/or the top-mostand bottom-most pixel of the glyph) from a set of glyphs and utilizesthe lowest height glyph to determine a number of partitions (e.g., alower-case glyph that is lowest in height from other glyphs in the setof glyphs). Additionally, in some implementations, the textureextraction system 106 also utilizes the lowest height glyph to determinethe partition placements for the glyphs in the set of glyphs. Forinstance, the texture extraction system 106 sets partitions for theglyphs to account for regions of the set of glyphs that are within therange of the lowest height glyph. Then, in one or more implementations,the texture extraction system 106 determines kerning distances betweenconsecutive glyphs within the partitions corresponding to the lowestheight glyph.

Upon determining multiple kerning distances between consecutive glyphsat multiple partitions, the texture extraction system 106, in one ormore implementations, utilizes the multiple kerning distances todetermine a kerning value between the consecutive glyphs. For example,the texture extraction system 106 calculates a kerning value frommultiple kerning distances utilizing an average kerning distance fromthe multiple kerning distances as the kerning value. Although one ormore implementations illustrates the texture extraction system 106utilizing an averaged kerning distance as the kerning value, the textureextraction system 106, in some implementations, utilizes variousapproaches such as, but not limited to, utilizing a minimum kerningdistance, a maximum kerning distance, a mode kerning distance, and/ormedian kerning distance from the multiple kerning distances as thekerning value.

To illustrate, in some implementations, the texture extraction system106 determines an N number of partitions for glyphs within a set ofglyphs. Then, in one or more implementations, the texture extractionsystem 106 determines an average from the kerning distances(Q_(i)−P_(i)) between a left-most position (Q_(i)) within a second glyph(e.g., a glyph on the right side) and a right-most position (P_(i))within a first glyph (e.g., a glyph on the left side) for an N number ofpartitions as the kerning value between the glyphs. Indeed, in one ormore instances, the texture extraction system 106 determines an averagekerning distance between consecutive glyphs as a kerning value utilizingthe following function:

$\begin{matrix}{{{Distance}_{avg} = {\frac{1}{N}{\sum\limits_{i = 0}^{N}( {Q_{i} - P_{i}} )}}}{{{Kerning}{Value}} = {- {Distance}_{avg}}}} & (3)\end{matrix}$

In one or more implementations, the texture extraction system 106determines a kerning value utilizing function (3) for each pair ofconsecutive glyphs within a set of glyphs.

Subsequently, to generate a set of kerning-adjusted glyphs, the textureextraction system 106 adjusts glyph positions utilizing the determinedkerning values (utilizing kerning distances from multiple partitions asdescribed above). For example, as shown in FIG. 4, the textureextraction system 106 modifies x coordinate positions of the glyphs toreduce a gap between each consecutive glyph. More specifically, for eachglyph, the texture extraction system 106, in one or moreimplementations, generates updated x coordinate positions (UpdatedXPos)by utilizing current x coordinate positions (CurrentXPos) of the glyphand the kerning value between the glyph and a consecutive (e.g.,adjacent) glyph as described above (e.g., in relation to function (2)).As mentioned above, in some implementations, the texture extractionsystem 106 also utilizes a positive kerning value to reposition glyphsto the right to reduce gaps between consecutive glyphs. In some cases,the texture extraction system 106 updates x coordinate positions ofpixels corresponding to the glyphs and/or the x coordinate positions ofthe bounding boxes of the glyphs.

Moreover, in one or more implementations, the texture extraction system106 generates a set of kerning-adjusted glyphs that overlap whenreducing gaps between consecutive glyphs utilizing kerning values frommultiple kerning distances between the consecutive glyphs. In certaininstances, the texture extraction system 106 utilizes less processingresources to inpaint a set of kerning-adjusted glyphs that overlap asthe texture extraction system 106 fills less gaps between thekerning-adjusted glyphs. Indeed, in some implementations, the textureextraction system 106 improves processing efficiency and speed whenreducing gaps between glyphs by utilizing kerning values determined frommultiple kerning distances between the consecutive glyphs.

Although one or more implementations illustrate the texture extractionsystem 106 adjusting positions of the glyphs horizontally utilizingkerning distances from horizontal partitions, in some cases, the textureextraction system 106 also determines kerning values from multiplekerning distances utilizing multiple partitions for glyphs that arevertically positioned and/or glyphs that positioned in a combination ofvertical and horizontal positions (e.g., scattered and/or diagonalglyphs). More specifically, in some instances, the texture extractionsystem 106 determines multiple partitions in the direction of therelative glyph positions (e.g., vertical partitions when glyphs arepositioned vertically and/or an aligned partition when the glyphs arepositioned vertically and horizontally (in a combination)).

Then, in one or more implementations, the texture extraction system 106determines multiple kerning distances within (or along) the multiplepartitions that are created in the direction of the relative glyphpositions (to determine kerning values for consecutive glyphs). Indeed,in some implementations, the texture extraction system 106 utilizes suchkerning values to reduce gaps between consecutive glyphs in a verticaldirection and/or a vertical and horizontal direction to generate thekerning-adjusted glyphs. Additionally, in one or more instances, thetexture extraction system 106 then generates a synthesized texture (asdescribed above) from textures belonging to the vertically (and/orvertically and horizontally) kerning-adjusted glyphs.

Furthermore, in some cases, embedded text from a digital image includesglyphs that depict a varying texture. In particular, in some cases,glyphs from an embedded text may include a varying texture by depictingtextures having different colors, patterns, and/or other visualcharacteristics between the glyphs. By utilizing multiple glyphs from anembedded text with kerning-adjustments, the texture extraction system106 generates a synthesized texture that accurately represents thevariations of visual characteristics across the set of glyphs such thatthe synthesized texture holistically accounts for a texture that isdepicted across an embedded text from the digital image.

As an example, FIG. 5 illustrates the texture extraction system 106generating a synthesized texture from an embedded text of a digitalimage that includes variation in texture across glyphs of the embeddedtext. As shown in FIG. 5, the texture extraction system 106 extracts aset of glyphs 504 that include varying textures (using text recognitionand text segmentation as described above) from digital image 502. Then,as shown in FIG. 5, the texture extraction system 106 generates a set ofkerning-adjusted glyphs 506 (utilizing kerning values as describedabove). Indeed, as further shown in FIG. 5, the texture extractionsystem 106 generates a synthesized texture 510 that accounts for thevarying changes in texture across the multiple glyphs by inpainting (asdescribed above) the set of kerning-adjusted glyphs 506.

In certain instances, as shown in FIG. 5, the texture extraction system106 crops the set of kerning-adjusted glyphs 506 prior to generating thesynthesized texture 510. In particular, as illustrated in FIG. 5, thetexture extraction system 106 crops the set of kerning- adjusted glyphs506 to generate a cropped set of kerning-adjusted glyphs 508. As shownin FIG. 5, the texture extraction system 106 crops the set ofkerning-adjusted glyphs 506 along a lowest-height glyph (orlowest-height glyph bounding box) from the set of kerning-adjustedglyphs 506 to generate the cropped set of kerning-adjusted glyphs 508.Moreover, in one or more implementations, the texture extraction system106 generates a synthesized texture (e.g., the synthesized texture 510)by inpainting the cropped set of kerning-adjusted glyphs 508. By doingso, in some implementations, the texture extraction system 106 furtherreduces the needed processing resources to inpaint a set ofkerning-adjusted glyphs as the texture extraction system 106 fills lessgaps between the kerning-adjusted glyphs to generate an accuratesynthesized texture from a cropped set of kerning-adjusted glyphs.

As mentioned above, in one or more implementations, the textureextraction system 106 applies a texture to a target digital object(e.g., text) based on a generated synthesized texture from an embeddedtext depicted within a digital image. For example, FIG. 6 illustratesthe texture extraction system 106 applying a texture to a target digitaltext utilizing a synthesized texture (e.g., an extracted texture) fromembedded text depicted within a digital image. For instance, as shown inFIG. 6, the texture extraction system 106 receives an input digitalimage 604 on a client device 602 and utilizes the input digital image604 to generate an extracted texture 606 (e.g., synthesized texture)from the embedded text within the input digital image 604 (in accordancewith one or more implementations herein).

Subsequently, as shown in FIG. 6, the texture extraction system 106utilizes the extracted texture 606 to search for target textures withinthe texture repository 116 (e.g., utilizing an image-based searchengine). Indeed, as shown in FIG. 6, the texture extraction system 106identifies various searched target textures 608 that are similar to theextracted texture 606. As further shown in FIG. 6, the textureextraction system 106 also receives a selection of a target texture fromthe searched target textures 608 (e.g., displayed on a graphical userinterface of the client device 602). Indeed, upon receiving theselection of the target texture, the texture extraction system 106applies the target texture to a target digital text 610 to generate amodified target digital text 612 (e.g., for display on the graphicaluser interface of the client device 602). Indeed, the texture extractionsystem 106, in some instances, applies the target texture to the targetdigital text 610 upon receiving, from the client device 602, a requestto modify the target digital text 610 utilizing the selected targettexture.

Indeed, in some instances, the texture extraction system 106 utilizestarget textures that are configured to apply to various target digitaltext objects. As an example, the target textures include predeterminedtextures that have settings and/or configurations that apply to adigital text object. Furthermore, in some implementations, a targetdigital text object is modified by filling the target digital textobject using a target texture (that is identified using the synthesizedtexture from the text embedded within the digital image).

Moreover, in one or more implementations, a target digital text includesa modifiable digital text object or digital text image. For example, atarget digital text includes a live vector text object and/or a textidentified within another digital image. In certain instances, thetexture extraction system 106 utilizes a target digital text by applyinga synthesized texture to each live vector text object character in atext collection (or text style). In some implementations, the textureextraction system 106 applies the synthesized texture to portions of adigital image where text is identified to modify the depicted textwithin a digital image.

In some instances, as mentioned above, the texture extraction system 106directly applies a synthesized texture from an embedded text of adigital image to a target digital text object to modify a target digitaltext. In particular, the texture extraction system 106 utilizes thesynthesized texture to fill a target digital text such that the targetdigital text depicts a visual characteristic that is similar to thesynthesized texture. For example, the texture extraction system 106utilizes scaling, fitting, and/or repetition of a synthesized texture tofill a target digital text with the synthesized texture. For example, inreference to FIG. 6, the texture extraction system 106 receives arequest to apply the extracted texture 606 to the target digital text610. In response, in one or more implementations, the texture extractionsystem 106 fits the extracted texture 606 onto the target digital text610 to generate a modified target digital text that visually depicts theextracted texture 606. In one or more implementations, the textureextraction system 106 utilizes a modified target digital text thatincludes a synthesized texture (generated as described above) with acomputer vision task or project (e.g., another digital image, a digitalvideo, and/or electronic document).

Turning now to FIG. 7, additional detail will be provided regardingcomponents and capabilities of one or more implementations of thetexture extraction system. In particular, FIG. 7 illustrates an exampletexture extraction system 106 executed by a computing device 700 (e.g.,server device(s) 102 or the client device 110). As shown by theimplementation of FIG. 7, the computing device 700 includes or hosts thedigital graphics system 104 and the texture extraction system 106.Furthermore, as shown in FIG. 7, the texture extraction system 106includes a digital image manager 702, a glyph extraction manager 704, asynthesized texture generator 706, digital text modification manager708, and a data storage manager 710.

As just mentioned, and as illustrated in the implementation of FIG. 7,the texture extraction system 106 includes the digital image manager702. For example, the digital image manager 702 receives, retrieves,and/or stores one or more digital images that depict text as describedabove (e.g., in relation to FIG. 2). Furthermore, in someimplementations, the digital image manager 702 also receives, retrieves,and/or stores one or more textures (or digital images that depicttextures) as described above (e.g., in relation to FIGS. 1 and 6).

Moreover, as shown in FIG. 7, the texture extraction system 106 includesthe glyph extraction manager 704. For instance, the glyph extractionmanager 704 identifies text depicted within digital images utilizing atext recognition model as described above (e.g., in relation to FIG. 2).Additionally, in one or more implementations, the glyph extractionmanager 704 also segments text identified in digital images to extractone or more glyphs from the digital image utilizing a text segmentationmodel as described above (e.g., in relation to FIG. 2).

Furthermore, as illustrated in FIG. 7, the texture extraction system 106includes the synthesized texture generator 706. In one or moreimplementations, the synthesized texture generator 706 determineskerning values between consecutive glyphs from a set of glyphs based onkerning distances between bounding boxes and/or multiple kerningdistances between multiple partitions of the glyphs as described above(e.g., in relation to FIGS. 3-5). In addition, in one or moreimplementations, the synthesized texture generator 706 adjusts positionsof glyphs in a set of glyphs utilizing kerning values to generate a setof kerning-adjusted glyphs as described above (e.g., in relation toFIGS. 3-5). Moreover, in certain instances, the synthesized texturegenerator 706 generates a synthesized texture by inpainting the texturescorresponding to the set of kerning-adjusted glyphs as described above(e.g., in relation to FIGS. 3-5).

Moreover, as shown in FIG. 7, the texture extraction system 106 includesthe digital text modification manager 708. In some implementations, thedigital text modification manager 708 utilizes a synthesized texturefrom text depicted in an input digital image to search for targettextures as described above (e.g., in relation to FIG. 6). In addition,in one or more implementations, the digital text modification manager708 receives selections of target textures and applies selected targettextures to target digital text to modify the target digital text asdescribed above (e.g., in relation to FIG. 6). Furthermore, in one ormore implementations, the digital text modification manager 708 directlyapplies a generated synthesized texture to a target digital text asdescribed above (e.g., in relation to FIG. 6).

Additionally, as shown in FIG. 7, the texture extraction system 106includes the data storage manager 710. In some implementations, the datastorage manager 710 is implemented by one or more memory devices.Moreover, in one or more implementations, the data storage manager 710maintains data to perform one or more functions of the textureextraction system 106. For instance, the data storage manager 710includes image data (e.g., input digital images, textures, segmenteddigital images, glyphs), glyph parameters (e.g., kerning distances,kerning values), and digital text objects (e.g., live vector text,modified digital text objects).

Each of the components 702-710 of the computing device 700 (e.g., thecomputing device 700 implementing the texture extraction system 106), asshown in FIG. 7, may be in communication with one another using anysuitable technology. The components 702-710 of the computing device 700can comprise software, hardware, or both. For example, the components702-710 can comprise one or more instructions stored on acomputer-readable storage medium and executable by processor of one ormore computing devices. When executed by the one or more processors, thecomputer-executable instructions of the texture extraction system 106(e.g., via the computing device 700) can cause a client device and/orserver device to perform the methods described herein. Alternatively,the components 702-710 and their corresponding elements can comprisehardware, such as a special purpose processing device to perform acertain function or group of functions. Additionally, the components702-710 can comprise a combination of computer-executable instructionsand hardware.

Furthermore, the components 702-710 of the texture extraction system 106may, for example, be implemented as one or more operating systems, asone or more stand-alone applications, as one or more modules of anapplication, as one or more plug-ins, as one or more library functionsor functions that may be called by other applications, and/or as acloud-computing model. Thus, the components 702-710 may be implementedas a stand-alone application, such as a desktop or mobile application.Furthermore, the components 702-710 may be implemented as one or moreweb-based applications hosted on a remote server. The components 702-710may also be implemented in a suite of mobile device applications or“apps.” To illustrate, the components 702-710 may be implemented in anapplication, including but not limited to, ADOBE SENSEI, ADOBEILLUSTRATOR, ADOBE ACROBAT READER, ADOBE PRINT, and ADOBE PHOTOSHOP.“ADOBE,” “ADOBE SENSEI,” “ADOBE ILLUSTRATOR,” “ADOBE ACROBAT READER,”“ADOBE PRINT,” and “ADOBE PHOTOSHOP.” are either registered trademarksor trademarks of Adobe Inc. in the United States and/or other countries.

FIGS. 1-7, the corresponding text, and the examples provide a number ofdifferent methods, systems, devices, and non-transitorycomputer-readable media of the texture extraction system 106. Inaddition to the foregoing, one or more implementations can also bedescribed in terms of flowcharts comprising acts for accomplishing aparticular result, as shown in FIG. 8. The acts shown in FIG. 8 may beperformed in connection with more or fewer acts. Further, the acts maybe performed in differing orders. Additionally, the acts describedherein may be repeated or performed in parallel with one another orparallel with different instances of the same or similar acts. Anon-transitory computer-readable medium can comprise instructions that,when executed by one or more processors, cause a computing device toperform the acts of FIG. 8. In some implementations, a system can beconfigured to perform the acts of FIG. 8. Alternatively, the acts ofFIG. 8 can be performed as part of a computer-implemented method.

As mentioned above, FIG. 8 illustrates a flowchart of a series of acts800 for extracting a texture from embedded text depicted within adigital image. While FIG. 8 illustrates acts according to oneimplementation, alternative implementations may omit, add to, reorder,and/or modify any of the acts shown in FIG. 8.

As shown in FIG. 8, the series of acts 800 include an act 802 ofidentifying glyphs depicted within a digital image. In particular, inone or more implementations, the act 802 includes identifying a set ofglyphs depicted within a digital image. In some instances, a set ofglyphs depict a set of glyph textures. Furthermore, in one or moreimplementations, the act 802 includes identifying glyphs depicted withina digital image utilizing a text recognition model. Moreover, in someinstances, the act 802 includes segmenting glyphs from a digital imageto generate a text-digital image depicting a set of glyphs. In someimplementations, the act 802 includes identifying a set of glyphsdepicted within a digital image utilizing a text recognition model and atext segmentation model.

As shown in FIG. 8, the series of acts 800 include an act 804 ofgenerating a synthesized texture from the glyphs. In particular, in oneor more implementations, the act 804 includes generating a synthesizedtexture from a set of glyphs based on kerning-value-adjusted positionsof the set of glyphs and a set of depicted glyph textures (of theglyphs). Furthermore, in some implementations, the act 804 includesdetermine kerning-value-adjusted positions of a set of glyphs bydetermining a kerning value between a first glyph and a second glyphfrom the set of glyphs and adjusting a position of the second glyphutilizing the kerning value to reduce a gap between the first glyph andthe second glyph. In some cases, the act 804 includes determining akerning value utilizing a kerning distance between a left-most positionof a second glyph and a right-most position of a first glyph. In certaininstances, the act 804 includes determining a kerning value bydetermining an average kerning distance between a first glyph and asecond glyph utilizing multiple kerning distances from multiplepartitions of the first glyph and the second glyph.

Furthermore, in some implementations, the act 804 includes generating asynthesized texture by inpainting portions of a text-digital imageutilizing a set of depicted glyph textures within kerning-value-adjustedpositions of a set of glyphs. In some cases, the act 804 includesgenerating a synthesized texture from a set of glyphs by determining akerning value between a first glyph and a second glyph from the set ofglyphs, adjusting a position of the second glyph utilizing the kerningvalue to reduce a gap between the first glyph and the second glyph togenerate a set of kerning-adjusted glyphs, and inpainting the set ofkerning-adjusted glyphs utilizing a depicted set of glyph textures (fromthe glyphs). Moreover, in some implementations, the act 804 includesinpainting a set of kerning-adjusted glyphs by filling a backgroundwithin a text-digital image depicting the set of kerning-adjusted glyphswith a depicted set of glyph textures.

In certain implementations, the act 804 includes determining a kerningvalue utilizing a kerning distance between a right-most position of afirst bounding box corresponding to a first glyph and a left-mostposition of a second bounding box corresponding to a second glyph andadjusting a position of a second glyph by reducing a left-most positionof a second bounding box by the kerning value. Furthermore, in someimplementations, the act 804 includes identifying, within a firstpartition of a first glyph and a second glyph, a first kerning distanceutilizing a left-most position of the second glyph within the firstpartition and a right-most position of the first glyph within the firstpartition, identifying, within a second partition of the first glyph andthe second glyph, a second kerning distance utilizing a left-mostposition of the second glyph within the second partition and aright-most position of the first glyph within the second partition, anddetermining a kerning value utilizing the first kerning distance and thesecond kerning distance. In some cases, the act 804 includes determininga kerning value utilizing an average of a first kerning distance and asecond kerning distance (from multiple partitions of the first andsecond glyph). In addition, in one or more implementations, the act 804includes adjusting a position of a second glyph by reducing a left-mostposition of a bounding box of the second glyph by a kerning value.

Furthermore, in some implementations, the act 804 includes identifying alowest-height glyph from a set of kerning-adjusted glyphs. In addition,in certain instances, the act 804 includes cropping a set ofkerning-adjusted glyph utilizing an upper boundary and a lower boundaryof a lowest-height glyph.

In addition (or in alternative) to the acts above, the textureextraction system 106 can also perform a step for generating aninpainted texture utilizing position-adjusted glyphs from a set ofglyphs. For instance, the acts and algorithms described above inrelation to FIG. 3-5 (e.g., the acts 302-308, 402-408, and 502-510)comprise the corresponding acts and algorithms for performing a step forgenerating an inpainted texture utilizing position-adjusted glyphs froma set of glyphs.

As shown in FIG. 8, the series of acts 800 include an act 806 ofapplying a texture to a target digital text based on the synthesizedtexture. In particular, in one or more implementations, the act 806includes applying a texture to a target digital text by fitting asynthesized texture on the target digital text. In some cases, the act806 includes applying a synthesized texture to a target digital text.Moreover, in one or more implementations, the act 806 includesidentifying a texture (to apply to a target digital text) from arepository of textures utilizing a synthesized texture. Furthermore, insome implementations, the act 806 includes searching for a set of targettextures from a repository of textures utilizing a synthesized texture.

In certain implementations, the act 806 includes identifying a targettexture from a set of textures utilizing an inpainted texture andapplying the target texture to a target digital text. In one or moreimplementations, the act 806 includes identifying a target texture bysearching for a set of target textures from a repository of texturesutilizing an inpainted texture, providing the set of target textures fordisplay within a graphical user interface of a client device, andreceiving, from the client device, a selection of the target texturefrom the set of target textures. Moreover, in some implementations, theact 806 includes receiving, from a client device, a request to modify atarget digital text utilizing a target texture.

Implementations of the present disclosure may comprise or utilize aspecial purpose or general-purpose computer including computer hardware,such as, for example, one or more processors and system memory, asdiscussed in greater detail below. Implementations within the scope ofthe present disclosure also include physical and other computer-readablemedia for carrying or storing computer-executable instructions and/ordata structures. In particular, one or more of the processes describedherein may be implemented at least in part as instructions embodied in anon-transitory computer-readable medium and executable by one or morecomputing devices (e.g., any of the media content access devicesdescribed herein). In general, a processor (e.g., a microprocessor)receives instructions, from a non-transitory computer-readable medium,(e.g., memory), and executes those instructions, thereby performing oneor more processes, including one or more of the processes describedherein.

Computer-readable media can be any available media that can be accessedby a general purpose or special purpose computer system.Computer-readable media that store computer-executable instructions arenon-transitory computer-readable storage media (devices).Computer-readable media that carry computer-executable instructions aretransmission media. Thus, by way of example, and not limitation,implementations of the disclosure can comprise at least two distinctlydifferent kinds of computer-readable media: non-transitorycomputer-readable storage media (devices) and transmission media.

Non-transitory computer-readable storage media (devices) includes RAM,ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM),Flash memory, phase-change memory (“PCM”), other types of memory, otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to store desired programcode means in the form of computer-executable instructions or datastructures and which can be accessed by a general purpose or specialpurpose computer.

A “network” is defined as one or more data links that enable thetransport of electronic data between computer systems and/or modulesand/or other electronic devices. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as a transmissionmedium. Transmissions media can include a network and/or data linkswhich can be used to carry desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer. Combinationsof the above should also be included within the scope ofcomputer-readable media.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media tonon-transitory computer-readable storage media (devices) (or viceversa). For example, computer-executable instructions or data structuresreceived over a network or data link can be buffered in RAM within anetwork interface module (e.g., a “NIC”), and then eventuallytransferred to computer system RAM and/or to less volatile computerstorage media (devices) at a computer system. Thus, it should beunderstood that non-transitory computer-readable storage media (devices)can be included in computer system components that also (or evenprimarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions anddata which, when executed by a processor, cause a general-purposecomputer, special purpose computer, or special purpose processing deviceto perform a certain function or group of functions. In someimplementations, computer-executable instructions are executed by ageneral-purpose computer to turn the general-purpose computer into aspecial purpose computer implementing elements of the disclosure. Thecomputer-executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, or evensource code. Although the subject matter has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the described features or acts described above.Rather, the described features and acts are disclosed as example formsof implementing the claims.

Those skilled in the art will appreciate that the disclosure may bepracticed in network computing environments with many types of computersystem configurations, including, personal computers, desktop computers,laptop computers, message processors, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, mobile telephones,PDAs, tablets, pagers, routers, switches, and the like. The disclosuremay also be practiced in distributed system environments where local andremote computer systems, which are linked (either by hardwired datalinks, wireless data links, or by a combination of hardwired andwireless data links) through a network, both perform tasks. In adistributed system environment, program modules may be located in bothlocal and remote memory storage devices.

Implementations of the present disclosure can also be implemented incloud computing environments. As used herein, the term “cloud computing”refers to a model for enabling on-demand network access to a shared poolof configurable computing resources. For example, cloud computing can beemployed in the marketplace to offer ubiquitous and convenient on-demandaccess to the shared pool of configurable computing resources. Theshared pool of configurable computing resources can be rapidlyprovisioned via virtualization and released with low management effortor service provider interaction, and then scaled accordingly.

A cloud-computing model can be composed of various characteristics suchas, for example, on-demand self-service, broad network access, resourcepooling, rapid elasticity, measured service, and so forth. Acloud-computing model can also expose various service models, such as,for example, Software as a Service (“SaaS”), Platform as a Service(“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computingmodel can also be deployed using different deployment models such asprivate cloud, community cloud, public cloud, hybrid cloud, and soforth. In addition, as used herein, the term “cloud-computingenvironment” refers to an environment in which cloud computing isemployed.

FIG. 9 illustrates a block diagram of an example computing device 900that may be configured to perform one or more of the processes describedabove. One will appreciate that one or more computing devices, such asthe computing device 900 may represent the computing devices describedabove (e.g., computing device 700, server device(s) 102, client device110, and/or texture repository 116). In one or more implementations, thecomputing device 900 may be a mobile device (e.g., a mobile telephone, asmartphone, a PDA, a tablet, a laptop, a camera, a tracker, a watch, awearable device, etc.). In some implementations, the computing device900 may be a non-mobile device (e.g., a desktop computer or another typeof client device). Further, the computing device 900 may be a serverdevice that includes cloud-based processing and storage capabilities.

As shown in FIG. 9, the computing device 900 can include one or moreprocessor(s) 902, memory 904, a storage device 906, input/outputinterfaces 908 (or “I/O interfaces 908”), and a communication interface910, which may be communicatively coupled by way of a communicationinfrastructure (e.g., bus 912). While the computing device 900 is shownin FIG. 9, the components illustrated in FIG. 9 are not intended to belimiting. Additional or alternative components may be used in otherimplementations. Furthermore, in certain implementations, the computingdevice 900 includes fewer components than those shown in FIG. 9.Components of the computing device 900 shown in FIG. 9 will now bedescribed in additional detail.

In particular implementations, the processor(s) 902 includes hardwarefor executing instructions, such as those making up a computer program.As an example, and not by way of limitation, to execute instructions,the processor(s) 902 may retrieve (or fetch) the instructions from aninternal register, an internal cache, memory 904, or a storage device906 and decode and execute them.

The computing device 900 includes memory 904, which is coupled to theprocessor(s) 902. The memory 904 may be used for storing data, metadata,and programs for execution by the processor(s). The memory 904 mayinclude one or more of volatile and non-volatile memories, such asRandom-Access Memory (“RAM”), Read-Only Memory (“ROM”), a solid-statedisk (“SSD”), Flash, Phase Change Memory (“PCM”), or other types of datastorage. The memory 904 may be internal or distributed memory.

The computing device 900 includes a storage device 906 includes storagefor storing data or instructions. As an example, and not by way oflimitation, the storage device 906 can include a non-transitory storagemedium described above. The storage device 906 may include a hard diskdrive (“HDD”), flash memory, a Universal Serial Bus (“USB”) drive or acombination these or other storage devices.

As shown, the computing device 900 includes one or more I/O interfaces908, which are provided to allow a user to provide input to (such asuser strokes), receive output from, and otherwise transfer data to andfrom the computing device 900. These I/O interfaces 908 may include amouse, keypad or a keyboard, a touch screen, camera, optical scanner,network interface, modem, other known I/O devices or a combination ofsuch I/O interfaces 908. The touch screen may be activated with a stylusor a finger.

The I/O interfaces 908 may include one or more devices for presentingoutput to a user, including, but not limited to, a graphics engine, adisplay (e.g., a display screen), one or more output drivers (e.g.,display drivers), one or more audio speakers, and one or more audiodrivers. In certain implementations, I/O interfaces 908 are configuredto provide graphical data to a display for presentation to a user. Thegraphical data may be representative of one or more graphical userinterfaces and/or any other graphical content as may serve a particularimplementation.

The computing device 900 can further include a communication interface910. The communication interface 910 can include hardware, software, orboth. The communication interface 910 provides one or more interfacesfor communication (such as, for example, packet-based communication)between the computing device and one or more other computing devices orone or more networks. As an example, and not by way of limitation,communication interface 910 may include a network interface controller(“NIC”) or network adapter for communicating with an Ethernet or otherwire-based network or a wireless NIC (“WNIC”) or wireless adapter forcommunicating with a wireless network, such as a WI-FI. The computingdevice 900 can further include a bus 912. The bus 912 can includehardware, software, or both that connects components of computing device900 to each other.

In the foregoing specification, the invention has been described withreference to specific example implementations thereof. Variousimplementations and aspects of the invention(s) are described withreference to details discussed herein, and the accompanying drawingsillustrate the various implementations. The description above anddrawings are illustrative of the invention and are not to be construedas limiting the invention. Numerous specific details are described toprovide a thorough understanding of various implementations of thepresent invention.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedimplementations are to be considered in all respects only asillustrative and not restrictive. For example, the methods describedherein may be performed with less or more steps/acts or the steps/actsmay be performed in differing orders. Additionally, the steps/actsdescribed herein may be repeated or performed in parallel to one anotheror in parallel to different instances of the same or similar steps/acts.The scope of the invention is, therefore, indicated by the appendedclaims rather than by the foregoing description. All changes that comewithin the meaning and range of equivalency of the claims are to beembraced within their scope.

What is claimed is:
 1. A non-transitory computer-readable medium storinginstructions that, when executed by at least one processor, cause acomputing device to: identify a set of glyphs depicted within a digitalimage, the set of glyphs depicting a set of glyph textures; generate asynthesized texture from the set of glyphs based onkerning-value-adjusted positions of the set of glyphs and the set ofdepicted glyph textures; and apply a texture to a target digital objectbased on the synthesized texture.
 2. The non-transitorycomputer-readable medium of claim 1, further comprising instructionsthat, when executed by the at least one processor, cause the computingdevice to determine kerning-value-adjusted positions of the set ofglyphs by: determining a kerning value between a first glyph and asecond glyph from the set of glyphs; and adjusting a position of thesecond glyph utilizing the kerning value to reduce a gap between thefirst glyph and the second glyph.
 3. The non-transitorycomputer-readable medium of claim 2, further comprising instructionsthat, when executed by the at least one processor, cause the computingdevice to determine the kerning value utilizing a kerning distancebetween a left-most position of the second glyph and a right-mostposition of the first glyph.
 4. The non-transitory computer-readablemedium of claim 3, further comprising instructions that, when executedby the at least one processor, cause the computing device to determinethe kerning value by determining an average kerning distance between thefirst glyph and the second glyph utilizing multiple kerning distancesfrom multiple partitions of the first glyph and the second glyph.
 5. Thenon-transitory computer-readable medium of claim 1, further comprisinginstructions that, when executed by the at least one processor, causethe computing device to identify the set of glyphs by: identifyingglyphs depicted within the digital image utilizing a text recognitionmodel; and segmenting the glyphs from the digital image to generate atext-digital image depicting the set of glyphs.
 6. The non-transitorycomputer-readable medium of claim 5, further comprising instructionsthat, when executed by the at least one processor, cause the computingdevice to generate the synthesized texture by inpainting portions of thetext-digital image utilizing the set of depicted glyph textures withinthe kerning-value-adjusted positions of the set of glyphs.
 7. Thenon-transitory computer-readable medium of claim 1, further comprisinginstructions that, when executed by the at least one processor, causethe computing device to apply the texture to the target digital objectby fitting the synthesized texture on target digital text.
 8. Thenon-transitory computer-readable medium of claim 1, further comprisinginstructions that, when executed by the at least one processor, causethe computing device to identify the texture from a repository oftextures utilizing the synthesized texture.
 9. A system comprising: oneor more memory devices comprising a digital image depicting text; andone or more processors configured to cause the system to: identify a setof glyphs depicted within the digital image, the set of glyphs depictinga set of glyph textures; and generate a synthesized texture from the setof glyphs by: determining a kerning value between a first glyph and asecond glyph from the set of glyphs; adjusting a position of the secondglyph utilizing the kerning value to reduce a gap between the firstglyph and the second glyph to generate a set of kerning-adjusted glyphs;and inpainting the set of kerning-adjusted glyphs utilizing the depictedset of glyph textures.
 10. The system of claim 9, wherein the one ormore processors are configured to cause the system to: determine thekerning value utilizing a kerning distance between a right-most positionof a first bounding box corresponding to the first glyph and a left-mostposition of a second bounding box corresponding to the second glyph; andadjusting the position of the second glyph by reducing the left-mostposition of the second bounding box by the kerning distance.
 11. Thesystem of claim 9, wherein the one or more processors are configured tocause the system to: identify, within a first partition of the firstglyph and the second glyph, a first kerning distance utilizing aleft-most position of the second glyph within the first partition and aright-most position of the first glyph within the first partition;identify, within a second partition of the first glyph and the secondglyph, a second kerning distance utilizing a left-most position of thesecond glyph within the second partition and a right-most position ofthe first glyph within the second partition; and determine the kerningvalue utilizing the first kerning distance and the second kerningdistance.
 12. The system of claim 11, wherein the one or more processorsare configured to cause the system to determine the kerning valueutilizing an average of the first kerning distance and the secondkerning distance.
 13. The system of claim 11, wherein the one or moreprocessors are configured to cause the system to adjust the position ofthe second glyph by reducing a left-most position of a bounding box ofthe second glyph by the kerning value.
 14. The system of claim 9,wherein the one or more processors are configured to cause the systemto: identify a lowest-height glyph from the set of kerning-adjustedglyphs; and cropping the set of kerning-adjusted glyphs utilizing anupper boundary and a lower boundary of the lowest-height glyph.
 15. Thesystem of claim 9, wherein the one or more processors are configured tocause the system to inpaint the set of kerning-adjusted glyphs byfilling a background within a text-digital image depicting the set ofkerning-adjusted glyphs with the depicted set of glyph textures.
 16. Thesystem of claim 9, wherein the one or more processors are configured tocause the system to apply the synthesized texture to a target digitaltext.
 17. The system of claim 9, wherein the one or more processors areconfigured to cause the system to search for a set of target texturesfrom a repository of textures utilizing the synthesized texture.
 18. Acomputer-implemented method comprising: identifying a set of glyphsdepicted within a digital image, the set of glyphs depicting a set ofglyph textures; performing a step for generating an inpainted textureutilizing position-adjusted glyphs from the set of glyphs; identifying atarget texture from a set of target textures utilizing the inpaintedtexture; and applying the target texture to a target digital object. 19.The computer-implemented method of claim 18, further comprisingidentifying the set of glyphs depicted within the digital imageutilizing a text recognition model and a text segmentation model. 20.The computer-implemented method of claim 18, further comprisingidentifying the target texture by: identifying the target texture by:searching for the set of target textures from a repository of texturesutilizing the inpainted texture; providing the set of target texturesfor display within a graphical user interface of a client device; andreceiving, from the client device, a selection of the target texturefrom the set of target textures; and receiving, from the client device,a request to modify the target digital object utilizing the targettexture.